package com.geticsen.leetcode;
//https://leetcode-cn.com/problems/intersection-of-two-linked-lists/
public class Solution_160 {
    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
        if(headA == null || headB == null) return null;
        ListNode pA = headA, pB = headB;
        //两个链表  长度为 a ,b
        //所以让a 走到末尾开始走b的开头
        //b走到末尾开始走a的开头
        //如果没交点  因为a+b = b+a  所以一定是在相同循环次数下走到结尾
        //也就是 pa=null，pb=null并且推退出循环 返回null
        //如果有焦点 也会直接在循环中找出
        while(pA != pB) {
            pA = pA == null ? headB : pA.next;
            pB = pB == null ? headA : pB.next;
        }
        return pA;
    }
}
